草庐IT

c++ - ofstream 指针的 vector

全部标签

c - 文件崩溃导致的 Windows 大写转换

下面的代码应该将文件的内容转换为大写(如果需要转换,它会将原始字符替换为大写)。该代码适用于MacOS和Linux。但是在Windows上,转换在第二个字母处停止并将第二个字母(大写)写入文件中,永不结束。例子源数据:阿斯达夫结果:ASSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS...我不明白,为什么它在其他平台上工作,但适用于Windows。我非常

c++ - 从 C 中的函数返回 char 数组的首选方法

我目前正在开发一个C++dll,它将一个字符串返回给调用者。为了使dll独立于构建过程的其余部分,以及C++缺少标准ABI,我不得不用C字符指针包装字符串。据我所知,有两种以纯C方式返回字符串的可能性://Method1boolFoo1(wchar_t*s1,intlen){//Needsspacefor6chars+nullterminatorif(len目前是否有任何指南支持这两种解决方案中的一种?我已经看到方法1主要用于WindowsAPI,这可能是由于历史原因。但是,我也没有看到使用第二种方法有任何负面影响,这消除了调用者事先分配内存的需要。唯一的缺点是释放分配的内存的责任现在

c++ - LNK2019 : unresolved external symbol -- Implicit DLL

这个问题在这里已经有了答案:Whatisanundefinedreference/unresolvedexternalsymbolerrorandhowdoIfixit?(39个答案)关闭8年前。有很多类似的问题,但我几乎已尽一切努力解决问题,但似乎没有任何效果我创建了一个简单的小Dll。声明:voidfunc_A()voidfunc_B()还有一些其他的东西,我给了它一个C++文件名,但它基本上只是C程序我写了.def文件LIBRARY"myLib.dll"EXPORTSfunc_A@1func_B@2Dll创建成功。我已经确定properties->linker->input->m

c - 当我要求 2.0 时,wglCreateContextAttribsARB() 给了我 4.4

在我的机器上,当我调用wglCreateContextAttribsARB()请求2.0上下文时,我得到了2.1.2。这似乎足以纠正,所以我并不担心。然而,在friend的机器上调用相同的代码会给出4.4上下文。这有意义吗,还是我应该在某处寻找错误?代码如下。GKGLLoader和GKGLContext模块是我自己写的,你看他们的用法大概就能明白他们是怎么工作的,我就不说了发布他们的源文件(除非有人认为它可能相关)。#include#includestaticLRESULTCALLBACKDemoWindowProc(HWNDwin,UINTmsg,WPARAMwparam,LPARA

c++ - 在 Windows 中使用 LockFileEx API 锁定整个文件

可以使用LockFileEx锁定特定偏移量Windows中使用C++的API,我尝试了这个并获得了成功的结果。但我试图使用LockFileEx锁定整个文件,我没有做到。我没有在网站上找到任何如何使用LockfileEX进行完整文件锁定的文档。ifile=CreateFile(argv[1],GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_ALWAYS,0,NULL);if(ifile==INVALID_HANDLE_VALUE){printf("CreateFilefailed(%d)\n",GetLastError());return1;}OVERLAP

c - 更新标题栏 Winapi

我正在更新窗口的标题栏:/*insidethewindowprocedure*/HWNDedit_handle;/*...*/caseWM_COMMAND:{if(LOWORD(wParam)==2){/*2isthecodeforthebutton*/intlen=GetWindowTextLengthW(edit_handle);if(len>0){wchar_tbuf[len+1];GetWindowTextW(edit_handle,buf,len+1);SetWindowTextW(hwnd,buf);}}break;}但是,当我调用SetWindowTextW时,标题栏没有

c - 如何处理加密字符串?

我正在尝试制作一个简单的应用程序,它能够加密和解密一些简单的数据。CryptEncrypt工作正常。要加密的字符串是:Thisisasamplestring.。该字符串的加密数据为:¼╩b╒áó√$~ë▀i▐└╕]Φwµσ╨|V╜▐µáïÅ╚到目前为止一切顺利。在我得到加密文本后,我将它复制到另一个字符串。该字符串将在解密时使用。由于某种原因,只有一半的字符串会被复制到新的缓冲区中,因此无法解密。不管我怎么努力。我假设在加密的字符串中有一些特殊字符,因此不会按预期复制。例如,如果我使用sprintf(teststring,"%s",Encryptedstring);它也只会复制一半的字

c - 为什么我的结构元素带有填充字节?

我对结构元素的内存对齐有一个令人困惑的行为。考虑这两种结构:typedefstructs_inner{unsignedlongul1;doubledbl1;fourth_structs4;unsignedlongul2;inti1;}t_inner;typedefstructs_outer{other_structmember1;/*4-bytealigned,40bytesintermsofsizeof()*/unsignedlongmember2;t_innermember3;/*seeabove*/}t_outer;当我检查t_outer的内存布局时,我可以看到member1的元

c - 为什么内存对齐会在结构内发生变化?

在previousquestion中,我learned当一个具有8字节对齐的结构嵌入另一个具有4字节对齐的结构时,需要在8字节对齐的结构之前进行填充。明白了。至少我认为我理解了。VS2012docs说:Forstructures,unions,andarrays,thealignment-requirementisthelargestalignment-requirementofitsmembers.所以,如果我有这样的结构:typedefstructs_inner{unsignedlongul1;doubledbl1;fourth_structs4;unsignedlongul2;i

windows - Windbg 将指针视为有符号整数

structNode{structNodeYNY;intdata;};当我这样做时,对于该结构的实例指针“N”2:kd>?poi(poi(N))Evaluateexpression:-70368698399456=ffffc000`02ba8520基本上我想用这样的东西bpigdkmd64!KmRender+0x199".if(@@(N)>0x1){}.else{gc}"因此,大多数情况下它是正确的,但由于windbg将其视为有符号整数,上述条件断点始终为假,因为@@(N)始终计算为负数。如何比较2个内存地址的数量? 最佳答案 kd